Somehow something wrote a wrong value somewhere in the font.info, I know this is not helpful. This is not possible with the font info sheet as everything is either validated or normalised when setting into the font info.
Does the font info sheet open for this font?
You can test where it goes wrong or which attribute has the wrong value with this script:
from fontTools.ufoLib import fontInfoAttributesVersion3
# get the current font
f = CurrentFont()
# to test set a wrong value somewhere
# f.naked().info.styleName = 1234
# loop over all attributes
for attr in fontInfoAttributesVersion3:
# ignore the guidelines
if attr == "guidelines":
continue
# get the attribute from font info
getattr(f.info, attr)
when # f.naked().info.styleName = 1234 is uncommented you should receive this error message:
Traceback (most recent call last):
File "<untitled>", line 6, in <module>
File "info.py", line 38, in setter
raise ValueError("Invalid value ({0}) for attribute {1}.".format(repr(value), name))
ValueError: Invalid value (1234) for attribute styleName.